package tech.aistar.corejava.day09;

/**
 * Created by 豆梦寒 on 2019/7/25.
 */
public class Student {
    //私有化两个属性
    private int id;
    private String sno;

    //无参构造
    public Student() {
    }
    //两参构造

    public Student(int id, String sno) {
        this.id = id;
        this.sno = sno;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSno() {
        return sno;
    }

    public void setSno(String sno) {
        this.sno = sno;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Student{");
        sb.append("id=").append(id);
        sb.append(", sno='").append(sno).append('\'');
        sb.append('}');
        return sb.toString();
    }
    //手动重写equals方法
    @Override
    public boolean equals(Object obj){
        //1,非空性
        if(obj == null){
            return false;
        }
        //2,自选性
        if (obj instanceof Student) {
            //防止student对象和一个非student对象进行比较
            Student s = (Student) obj;
            //需求 只要id 是一样的，就认为是同一个对象
            if(this.id == s.getId()){
                return true;

            }
            //需求2 - id和sno俩个属性同时一样,才认为是同一个对象
            //注意点:字符串的比较使用equals - java.lang.String类里面也重写了equals方法
            if(this.id == s.getId() && this.sno.equals(s.getSno()))
                return true;
        }
        return false;
    }
}
